#pragma once

typedef __int8 Int8;
typedef unsigned __int8 UInt8;
typedef __int16 Int16;
typedef unsigned __int16 UInt16;
typedef __int32 Int32;
typedef unsigned __int32 UInt32;
typedef __int64 Int64;
typedef unsigned __int64 UInt64;

typedef int Int;
typedef unsigned int UInt;

typedef float Real; //default single precision floating point
typedef float Real32; //we assume (but we should static_assert somewhere) that float are 32 bits wide
typedef double Real64; //as Real32, we should static_assert it

const UInt MAX_UINT = static_cast<const UInt>(-1);

